package Commnads;

import java.nio.file.Path;

import Commnads.Commands.Command;

/**
 * this class is wrapping the interface Command, by adding new members
 * that enabled us to keep the input from GUI, and to return values to GUI
 * @author DROR
 */

public abstract class ImpCommand implements Command 
{
	private String tag;
	private String file;
	private Path path;
	private String pathOnString;


	/**
	 * This function returns her member pathOnString
	 * @return a {@link String} that represents directory's {@link Path}
	 */
	public String getPathOnString() {
		return pathOnString;
	}
	
/**
 * This function sets her member pathOnString
 * @param pathOnString a {@link String} that represents directory's {@link Path}
 */
	public void setPathOnString(String pathOnString) {
		this.pathOnString = pathOnString;
	}

	/**
	 * This function returns her member path
	 * @return {@link Path}  the path
	 */
	public Path getPath() 
	{
		return path;
	}
	
	/**
	 * This function sets her member path
	 * @param path a new {@link Path}
	 */
	public void setPath(Path path) 
	{
		this.path = path;
	}

	/**
	 * This function returns her member tag
	 * @return {@link String}  tag
	 */
	public String getTag()
	{
		return tag;
	}
	
	/**
	 * This function sets her member tag
	 * @param t new {@link String} tag
	 */
	public void setTag(String t)
	{
		tag = t;
	}

	/**
	 * This function returns her member file
	 * @return {@link String}  the name of file
	 */
	public String getFile()
	{
		return file;
	}
	
	/**
	 * This function sets her member file
	 * @param fi a new {@link String} represents name of file
	 */
	public void setFile(String fi)
	{
		file = fi;
	}

	/**
	 * This function executing the Command
	 */
	public abstract void execute();

	/**
	 * This function returns a clone of the Command
	 */
	public abstract Command clone();

	/**
	 * This function returns Command's key (the operation)
	 */
	public abstract String getKey();
}
